common.skill

ফাংশন এবং সাবরুটিন (Functions and Subroutines)

Microsoft Technologies - ব্যাচ স্ক্রিপ্ট (Batch Script)
220
220

Batch script-এ ফাংশন এবং সাবরুটিন ব্যবহার করা হয় কোডের পুনঃব্যবহারযোগ্যতা বাড়ানোর জন্য। এটি স্ক্রিপ্টের কার্যকারিতা উন্নত করে এবং কোডের ডুপ্লিকেশন কমায়। ফাংশন এবং সাবরুটিন ব্যবহারের মাধ্যমে আপনি একাধিক স্থানে একই কোড ব্যবহার করতে পারেন, যা কোড লেখার সময় সহজতর এবং সংক্ষিপ্ত করে।

1. ফাংশন কী এবং কিভাবে কাজ করে

Batch script-এ ফাংশন ব্যবহার করা হয় একটি কোড ব্লককে একাধিক জায়গায় পুনঃব্যবহার করার জন্য। একটি ফাংশন সাধারণত একটি নির্দিষ্ট কাজ সম্পন্ন করে এবং প্রয়োজনীয় ভ্যালু রিটার্ন করে।

Batch script-এ সরাসরি ফাংশন সংজ্ঞায়িত করার সুযোগ নেই, তবে আমরা CALL কমান্ডের মাধ্যমে সাবরুটিন ব্যবহার করতে পারি, যা কার্যত ফাংশনের মতো কাজ করে। ফাংশনের মতো একটি ব্লক তৈরির জন্য সাবরুটিন ব্যবহার করা হয়।

2. সাবরুটিন কী এবং কিভাবে কাজ করে

সাবরুটিন হল একটি নির্দিষ্ট কোড ব্লক যেটি ফাংশনের মতোই কাজ করে, কিন্তু এটি কোনো ভ্যালু রিটার্ন করে না। সাবরুটিনের জন্য আপনাকে CALL কমান্ড ব্যবহার করতে হবে।

সাবরুটিনের মধ্যে কোনো নির্দিষ্ট কাজ করা হয় এবং যখন আপনি CALL কমান্ডের মাধ্যমে এই সাবরুটিনকে কল করেন, তখন কোডটি এক্সিকিউট হয়।

সাবরুটিন ডিফাইন করা

Batch script-এ সাবরুটিন তৈরির জন্য একটি লেবেল ব্যবহার করতে হয়, এবং সাবরুটিন কল করার জন্য CALL কমান্ড ব্যবহার করা হয়। এটি নির্দিষ্ট একটি নামের লেবেল হিসেবে কাজ করে এবং যেকোনো স্থানে ব্যবহার করা যায়।

  • ব্যবহার:

    :subroutine
    echo This is a subroutine
    goto :eof
    

    এখানে, :subroutine একটি লেবেল হিসেবে কাজ করে এবং goto :eof দিয়ে সাবরুটিনের শেষ নির্দেশ করা হয়।

সাবরুটিন কল করা

সাবরুটিন কল করতে CALL কমান্ড ব্যবহার করা হয়।

  • ব্যবহার:

    CALL :subroutine
    

    CALL :subroutine কমান্ডটি :subroutine লেবেলে যাওয়ার জন্য স্ক্রিপ্টে নির্দেশ দেয় এবং এটি সাবরুটিনটি এক্সিকিউট করে।

3. CALL কমান্ড ব্যবহার করে সাবরুটিন কল করা

CALL কমান্ডের মাধ্যমে আপনি একটি সাবরুটিনকে কল করতে পারেন এবং সেই সাবরুটিনটি এক্সিকিউট হওয়ার পর স্ক্রিপ্টের মূল অংশে ফিরে আসে।

  • ব্যবহার:

    @echo off
    echo Main part of script starts here
    
    CALL :subroutine
    echo Main part of script ends here
    goto :eof
    
    :subroutine
    echo This is a subroutine.
    goto :eof
    

    এখানে, প্রথমে স্ক্রিপ্টটি প্রধান অংশের কাজ শুরু করবে এবং তারপরে CALL :subroutine এর মাধ্যমে সাবরুটিনে যাবে। সাবরুটিনটি শেষ হলে স্ক্রিপ্টটি মূল অংশে ফিরে এসে কার্যক্রম শেষ করবে।

4. GOTO কমান্ড এবং লেবেল ব্যবহার

Batch script-এ লেবেল এবং GOTO কমান্ডের মাধ্যমে আপনি সাবরুটিন বা অন্য কোনো কোড ব্লকে স্কিপ করতে পারেন। GOTO কমান্ডটি স্ক্রিপ্টের নির্দিষ্ট অংশে চলে যেতে ব্যবহার করা হয়।

  • ব্যবহার:

    @echo off
    echo First part of script
    goto :subroutine
    echo This will be skipped
    
    :subroutine
    echo This part is executed
    goto :eof
    

    এখানে goto :subroutine কমান্ডটি স্ক্রিপ্টকে :subroutine লেবেলে পাঠিয়ে দেয় এবং পরবর্তী অংশটি স্কিপ হয়ে যায়।

5. Parameter Passing এবং Return Values

Batch script-এ সাবরুটিনের মাধ্যমে আপনি কিছু প্যারামিটার পাস করতে পারেন, যা সাবরুটিনের মধ্যে ব্যবহার করা যায়। তবে Batch script তেমন কোনো প্রকৃত "return value" ধারণ করে না, কিন্তু আপনি কোনো ভ্যালু এক্সপোর্ট করতে পারেন SET কমান্ড ব্যবহার করে।

  • প্যারামিটার পাস করা:

    @echo off
    CALL :addNumbers 5 10
    goto :eof
    
    :addNumbers
    set num1=%1
    set num2=%2
    set /a sum=%num1% + %num2%
    echo Sum is: %sum%
    goto :eof
    

    এখানে, CALL :addNumbers 5 10 প্যারামিটার ৫ এবং ১০ পাস করে, এবং সাবরুটিনে গিয়ে তাদের যোগফল প্রিন্ট করা হয়। %1 এবং %2 প্রথম এবং দ্বিতীয় প্যারামিটার হিসেবে কাজ করে।

সারাংশ

Batch script-এ ফাংশন এবং সাবরুটিন ব্যবহার করে কোডের পুনঃব্যবহারযোগ্যতা বাড়ানো হয়। CALL কমান্ডের মাধ্যমে সাবরুটিন কল করা হয়, যা স্ক্রিপ্টের কার্যক্রমকে আরও সংগঠিত করে এবং কোডের ডুপ্লিকেশন কমায়। প্যারামিটার পাসিং এবং GOTO কমান্ডের সাহায্যে লেবেল ব্যবহার করে সাবরুটিনের কার্যক্রম সহজে নিয়ন্ত্রণ করা যায়।

common.content_added_by

ফাংশন কী এবং কিভাবে কাজ করে

198
198

Batch script-এ ফাংশন সরাসরি সংজ্ঞায়িত করার সুযোগ নেই, তবে সাবরুটিন ব্যবহারের মাধ্যমে ফাংশনের মতো কার্যক্ষমতা অর্জন করা যায়। একটি ফাংশন সাধারণভাবে একটি নির্দিষ্ট কাজ সম্পন্ন করে এবং প্রয়োজনীয় আউটপুট রিটার্ন করে, তবে Batch script-এ ফাংশনগুলির কাজের ধরণ কিছুটা আলাদা। এখানে, সাবরুটিন ব্যবহার করে নির্দিষ্ট কার্যাবলী সম্পন্ন করা হয় এবং তা আবার অন্য স্থানে কল (CALL) করা হয়।

1. ফাংশন এবং সাবরুটিনের মধ্যে পার্থক্য

Batch script-এ ফাংশন এবং সাবরুটিন একে অপরের মতো কাজ করে, তবে ফাংশনের বিশেষত্ব হল এটি কোনও রিটার্ন ভ্যালু প্রদান করতে পারে। Batch script-এ রিটার্ন ভ্যালু ব্যবহারের কোনো সরাসরি পদ্ধতি নেই, তবে আপনি সাবরুটিনে কোন আউটপুট সেট করতে পারেন এবং পরে সেই আউটপুট অন্য স্থানে ব্যবহার করতে পারেন।

যেহেতু Batch script একটি সহজ স্ক্রিপ্টিং ভাষা, এটি পূর্ণ ফাংশনাল প্রোগ্রামিং ধারণা সমর্থন করে না, কিন্তু আপনি প্যারামিটার পাস করে সাবরুটিন বা ফাংশনগুলির মতো কাজ করতে পারেন।

2. ফাংশন তৈরির পদ্ধতি

Batch script-এ সরাসরি ফাংশন সংজ্ঞায়িত করা সম্ভব নয়, তবে আপনি সাবরুটিন তৈরি করে এবং সেই সাবরুটিন থেকে আউটপুট ফেরত নিয়ে কাজ করতে পারেন।

ফাংশন তৈরি করতে, CALL কমান্ড ব্যবহার করা হয়, এবং এতে প্যারামিটার পাস করতে পারা যায়। এর মাধ্যমে, ফাংশনের মতো কোড ব্লক তৈরি করা যায়।

3. ফাংশন ডিফাইন এবং কল করার উদাহরণ

ধরা যাক, আপনি একটি সাবরুটিন তৈরি করতে চান যা দুটি সংখ্যার যোগফল প্রদান করবে। এটি ফাংশনের মতো কাজ করবে এবং আপনি বিভিন্ন জায়গায় একে কল (CALL) করতে পারবেন।

@echo off
CALL :addNumbers 10 20
echo Main script ends here
goto :eof

:addNumbers
set num1=%1
set num2=%2
set /a sum=%num1% + %num2%
echo Sum is: %sum%
goto :eof

এই উদাহরণে, আমরা CALL :addNumbers 10 20 দিয়ে দুইটি সংখ্যা পাস করছি। সাবরুটিনটি তারপর সেই সংখ্যা দুটি গ্রহণ করে তাদের যোগফল বের করে এবং প্রিন্ট করে।

  • %1 এবং %2 প্যারামিটার হিসেবে কাজ করে, যা প্রথম এবং দ্বিতীয় আর্গুমেন্টকে রেফার করে।
  • set /a কমান্ডটি গাণিতিক অপারেশন করার জন্য ব্যবহার করা হয়েছে, যা দুটি সংখ্যা যোগফল বের করতে সহায়তা করে।
  • goto :eof দিয়ে সাবরুটিনের শেষে ফিরে আসা হয়, যেখানে :eof (End Of File) নির্দেশনা দেয়।

4. প্যারামিটার পাসিং

Batch script-এ সাবরুটিনে প্যারামিটার পাস করার জন্য %1, %2, %3 ইত্যাদি ব্যবহার করা হয়। এটি ফাংশনের মতো কাজ করে এবং আপনাকে বিভিন্ন ইনপুট প্রদান করার সুযোগ দেয়।

@echo off
CALL :multiplyNumbers 5 7
goto :eof

:multiplyNumbers
set num1=%1
set num2=%2
set /a product=%num1% * %num2%
echo The product is: %product%
goto :eof

এখানে, CALL :multiplyNumbers 5 7 দিয়ে দুটি সংখ্যা পাস করা হয়েছে, এবং ওই দুটি সংখ্যার গুণফল বের করা হয়েছে। %1 এবং %2 প্যারামিটার হিসেবে প্রথম এবং দ্বিতীয় সংখ্যাকে গ্রহণ করে এবং তাদের গুণফল প্রিন্ট করা হয়।

5. Return Value Simulation

Batch script-এ সরাসরি রিটার্ন ভ্যালু দেয়ার পদ্ধতি নেই, তবে আপনি SET কমান্ডের মাধ্যমে একটি ভ্যারিয়েবল সেট করে সেই ভ্যারিয়েবলকে মূল স্ক্রিপ্টে ব্যবহার করতে পারেন।

@echo off
CALL :multiplyNumbers 5 10
echo The main script continues
goto :eof

:multiplyNumbers
set num1=%1
set num2=%2
set /a result=%num1% * %num2%
set result=%result%
goto :eof

এখানে, সাবরুটিনের মধ্যে একটি ভ্যারিয়েবল result সেট করা হয়েছে, যা গুণফল ধারণ করে এবং এটি পরবর্তীতে ব্যবহৃত হতে পারে। এটি প্রকৃত রিটার্ন ভ্যালুর মতো কাজ করে, যদিও Batch script সরাসরি কোন রিটার্ন স্টেটমেন্ট সাপোর্ট করে না।

সারাংশ

Batch script-এ সরাসরি ফাংশন সংজ্ঞায়িত করার পদ্ধতি নেই, তবে সাবরুটিন ব্যবহার করে আপনি ফাংশনের মতো কোড ব্লক তৈরি করতে পারেন। CALL কমান্ডের মাধ্যমে সাবরুটিন কল করা হয় এবং প্যারামিটার পাস করা হয়। Batch script-এ কোন প্রকৃত রিটার্ন ভ্যালু থাকলেও, আপনি SET কমান্ডের মাধ্যমে আউটপুট ফিরিয়ে এনে স্ক্রিপ্টের অন্যান্য অংশে ব্যবহার করতে পারেন।

common.content_added_by

CALL কমান্ড ব্যবহার করে সাবরুটিন কল করা

212
212

CALL কমান্ডটি Batch Script-এ একটি সাবরুটিন বা ফাংশন কল করতে ব্যবহৃত হয়। এটি আপনার স্ক্রিপ্টের মধ্যে একাধিক কোড ব্লককে মডুলারভাবে পৃথক করে পরিচালনা করতে সাহায্য করে। সাবরুটিনে থাকা কোড একাধিক স্থানে পুনরায় ব্যবহার করা যায়, যার ফলে স্ক্রিপ্টটি আরও পরিষ্কার এবং রিইউজেবল হয়।


CALL কমান্ডের ব্যাখ্যা

CALL কমান্ডের সাহায্যে আপনি একটি ব্যাচ ফাইলের মধ্যে অন্য একটি সাবরুটিন কল করতে পারেন, যা একটি লেবেল দ্বারা চিহ্নিত থাকে। একবার সাবরুটিনে প্রবেশ করলে, স্ক্রিপ্টটি সেখানে সংজ্ঞায়িত কোডগুলি চালাবে, এবং পরে CALL কমান্ডটি যেখানে কল করা হয়েছে, সেখানে ফিরে আসবে।

ব্যবহার:

CALL :SubroutineName

এখানে, :SubroutineName হল সেই লেবেল যেখানে সাবরুটিনের কোড সংরক্ষিত থাকে। সাবরুটিনের শেষে একটি GOTO কমান্ড দিয়ে সাবরুটিন থেকে ফিরে আসা হয়।


উদাহরণ: CALL কমান্ড ব্যবহার

ধরা যাক, আপনার একটি ব্যাচ স্ক্রিপ্ট রয়েছে, যেখানে একটি সাবরুটিন আছে যা দুটি সংখ্যা যোগ করবে এবং ফলাফল প্রদর্শন করবে। আপনি CALL কমান্ড ব্যবহার করে সেটি কল করতে পারেন।

@echo off

echo Calling Subroutine...
CALL :AddNumbers 5 3

echo Back to Main Script
pause
exit

:AddNumbers
echo Adding %1 and %2
set /a result=%1+%2
echo The result is %result%
goto :eof

ব্যাখ্যা:

  1. CALL :AddNumbers 5 3
    এখানে, CALL কমান্ডটি :AddNumbers লেবেলকে কল করছে এবং 53 নামক দুইটি আর্গুমেন্ট পাস করছে।
  2. :AddNumbers
    এটি একটি সাবরুটিন যা দুইটি আর্গুমেন্ট গ্রহণ করে (%1 এবং %2), তাদের যোগফল বের করে এবং ফলাফল প্রদর্শন করে। এখানে, %1 হচ্ছে 5 এবং %2 হচ্ছে 3। শেষে, goto :eof কমান্ডের মাধ্যমে সাবরুটিনের কার্যক্রম শেষ হবে এবং স্ক্রিপ্টটি মূল জায়গায় ফিরে যাবে।
  3. goto :eof
    :eof (End Of File) লেবেলটি স্ক্রিপ্টের শেষের দিকে উপস্থিত থাকে, যা সাবরুটিনের শেষ হতে নির্দেশ করে। এটি CALL কমান্ডের পরিপূরক হিসেবে কাজ করে, যাতে সাবরুটিনটি শেষ হলে স্ক্রিপ্টটি আগের অবস্থানে ফিরে যেতে পারে।

Parameter Passing (পারামিটার পাসিং)

একটি গুরুত্বপূর্ণ বিষয় হল, আপনি CALL কমান্ডের মাধ্যমে সাবরুটিনে এক বা একাধিক পারামিটার পাস করতে পারেন। এসব পারামিটার সাবরুটিনে %1, %2, %3 ইত্যাদি দিয়ে অ্যাক্সেস করা হয়, যেখানে %1 প্রথম প্যারামিটার, %2 দ্বিতীয় প্যারামিটার, এবং এরকমভাবে চলতে থাকে।

উদাহরণ:

@echo off
CALL :DisplayMessage "Hello" "World"
pause
exit

:DisplayMessage
echo %1 %2
goto :eof

এখানে, CALL :DisplayMessage "Hello" "World" কমান্ডটি দুটি প্যারামিটার "Hello" এবং "World" সাবরুটিনে পাস করবে। সাবরুটিনটি echo %1 %2 দিয়ে এই দুটি প্যারামিটার প্রিন্ট করবে, এবং আউটপুট হবে:

Hello World

সাবরুটিনের জন্য রিটার্ন ভ্যালু (Return Values)

Batch Script সরাসরি রিটার্ন ভ্যালু সহ সাবরুটিন থেকে ফিরে আসার ব্যবস্থা করে না। তবে, আপনি সাবরুটিন থেকে কিছু ফলাফল ফেরত পেতে পারেন একটি ভেরিয়েবলের মাধ্যমে। উদাহরণস্বরূপ:

@echo off
CALL :Multiply 5 10
echo The product is %result%
pause
exit

:Multiply
set /a result=%1*%2
goto :eof

এখানে, Multiply সাবরুটিনটি দুটি সংখ্যার গুণফল গণনা করবে এবং সেই ফলাফলটি %result% ভেরিয়েবলে সংরক্ষণ করবে। CALL কমান্ডের মাধ্যমে সাবরুটিনটি কল করার পর, result ভেরিয়েবলটি মূল স্ক্রিপ্টে অ্যাক্সেস করা যাবে।


সারাংশ

CALL কমান্ডটি Batch Script-এ একটি গুরুত্বপূর্ণ কৌশল যা আপনাকে কোডকে মডুলারভাবে ভাগ করতে এবং একাধিক জায়গায় পুনরায় ব্যবহার করতে সাহায্য করে। এটি সাবরুটিন কল করতে ব্যবহৃত হয় এবং প্যারামিটার পাসিংয়ের মাধ্যমে আরও ডাইনামিক স্ক্রিপ্ট তৈরি করতে সহায়তা করে। GOTO :eof কমান্ডের মাধ্যমে সাবরুটিনটি শেষ হলে স্ক্রিপ্টটি আগের অবস্থানে ফিরে আসে। CALL কমান্ড Batch Script-কে আরও গঠনমূলক ও রিইউজেবল করে তোলে।

common.content_added_by

GOTO কমান্ড এবং লেবেল ব্যবহার

182
182

Batch Script-এ GOTO কমান্ড এবং লেবেল ব্যবহৃত হয় স্ক্রিপ্টের মধ্যে কোডের একটি নির্দিষ্ট জায়গায় পৌঁছানোর জন্য। এটি মূলত কোডের প্রবাহ নিয়ন্ত্রণে সাহায্য করে এবং স্ক্রিপ্টের নির্দিষ্ট অংশে গিয়ে অন্য কমান্ড কার্যকর করতে ব্যবহৃত হয়।


GOTO কমান্ড

GOTO কমান্ড Batch Script-এ ব্যবহার করা হয় কোডের এক জায়গা থেকে অন্য জায়গায় যাওয়ার জন্য। এটি একটি লেবেলের দিকে চলে যায়, যা স্ক্রিপ্টের অন্য কোথাও নির্দিষ্ট করা থাকে।

সিনট্যাক্স:

GOTO [label]

এখানে, [label] একটি লেবেলের নাম যা % দিয়ে নির্দেশিত হয়।

লেবেল ব্যবহার

লেবেল Batch Script-এ একটি নির্দিষ্ট পয়েন্ট চিহ্নিত করে, যেখানে GOTO কমান্ড যেতে পারে। লেবেলকে : দিয়ে চিহ্নিত করা হয়।

সিনট্যাক্স:

:label_name

লেবেলটি একেবারে স্ক্রিপ্টের যেকোনো স্থানে হতে পারে, তবে সাধারণত এটি একটি নির্দিষ্ট কাজের জন্য স্ক্রিপ্টের নিচের অংশে রাখা হয়।


GOTO এবং লেবেল ব্যবহার করার উদাহরণ

একটি সাধারণ উদাহরণ নিয়ে চলুন, যেখানে GOTO এবং লেবেল ব্যবহার করা হয়েছে। এই স্ক্রিপ্টটি একটি নির্দিষ্ট শর্তে নির্ধারিত কাজ করবে এবং তারপর গন্তব্য লেবেলে চলে যাবে।

উদাহরণ:

@echo off
SET VAR=Hello

IF "%VAR%"=="Hello" GOTO greet
IF "%VAR%"=="World" GOTO world

:greet
ECHO "Greeting from the greet label!"
GOTO end

:world
ECHO "This is the world label!"
GOTO end

:end
ECHO "End of the script."

এখানে, প্রথমে VAR পরিবর্তনশীলের মান চেক করা হচ্ছে। যদি তার মান "Hello" হয়, তবে GOTO কমান্ডটি greet লেবেলে চলে যাবে এবং সেখানে নির্দেশিত কমান্ডটি কার্যকর হবে। তারপর স্ক্রিপ্টটি end লেবেলে চলে যাবে, যেখানে স্ক্রিপ্ট শেষ হবে।

আউটপুট:

"Greeting from the greet label!"
End of the script.

GOTO কমান্ড এবং লেবেল ব্যবহার করে লজিক্যাল প্রবাহ নিয়ন্ত্রণ

এছাড়া, GOTO এবং লেবেল ব্যবহার করে আপনি স্ক্রিপ্টে একাধিক শর্ত এবং লজিক্যাল প্রবাহ নিয়ন্ত্রণ করতে পারেন। একটি উদাহরণ:

উদাহরণ:

@echo off
SET VAR=10

IF %VAR% LSS 5 GOTO less_than_five
IF %VAR% GEQ 5 GOTO greater_than_five

:less_than_five
ECHO "The value is less than 5."
GOTO end

:greater_than_five
ECHO "The value is 5 or greater."
GOTO end

:end
ECHO "End of the script."

এখানে, প্রথমে %VAR% এর মান চেক করা হচ্ছে। যদি তার মান ৫ এর কম হয়, তাহলে এটি less_than_five লেবেলে যাবে, আর যদি মান ৫ বা তার বেশি হয়, তাহলে greater_than_five লেবেলে যাবে।

আউটপুট:

The value is 5 or greater.
End of the script.

GOTO কমান্ডের ব্যবহার:

  • প্রবাহ নিয়ন্ত্রণ: GOTO কমান্ড স্ক্রিপ্টের মধ্যে প্রবাহ নিয়ন্ত্রণের একটি সহজ উপায়। এটি স্ক্রিপ্টের নির্দিষ্ট জায়গায় যাওয়ার জন্য ব্যবহৃত হয়, যেমন লেবেলে পৌঁছানো।
  • কোড পুনরাবৃত্তি: আপনি যদি একই ধরনের কোড বারবার চালাতে চান, তবে GOTO ব্যবহার করে একই অংশে ফিরে আসতে পারেন। তবে, এটি অতিরিক্ত কোড কমপ্লেক্সিটি তৈরি করতে পারে, তাই সাবধানতার সাথে ব্যবহার করা উচিত।
  • ভুল পদক্ষেপ এড়ানো: স্ক্রিপ্টের মধ্যে ভুল পদক্ষেপ বা কন্ডিশনাল চেক এড়ানোর জন্য GOTO কমান্ড ব্যবহার করে নির্দিষ্ট কাজ পরিচালনা করা যেতে পারে।

GOTO কমান্ডের কিছু সতর্কতা:

  1. ইনফিনিট লুপ: যদি GOTO কমান্ডটি কোনও লেবেলে যেতে যেতে আবার একই লেবেলে ফিরে আসে, তবে এটি একটি ইনফিনিট লুপ তৈরি করতে পারে, যা স্ক্রিপ্টের অপ্রত্যাশিত আচরণ ঘটাতে পারে।
  2. পাঠযোগ্যতা: অতিরিক্ত GOTO ব্যবহার কোডের পাঠযোগ্যতা কমিয়ে দিতে পারে। খুব বেশি লেবেল এবং GOTO ব্যবহারের কারণে স্ক্রিপ্টের লজিক বুঝতে সমস্যা হতে পারে। সুতরাং, যদি সম্ভব হয়, ফাংশন এবং সাবরুটিন ব্যবহার করা ভাল।

সারাংশ

  • GOTO কমান্ড এবং লেবেল ব্যবহার করে Batch Script-এর কোডের প্রবাহ নিয়ন্ত্রণ করা যায়।
  • লেবেলকে : দিয়ে চিহ্নিত করা হয়, এবং GOTO কমান্ডটি লেবেলের দিকে নির্দেশ করে।
  • এটি প্রবাহ নিয়ন্ত্রণ এবং লজিক্যাল চেক করার জন্য খুবই কার্যকর, তবে অতিরিক্ত ব্যবহার কোডের পাঠযোগ্যতা এবং সঠিকতার ক্ষেত্রে সমস্যা সৃষ্টি করতে পারে।

GOTO এবং লেবেল Batch Script-এ কোডের পরিচালনা সহজতর করতে পারে, তবে এটি সতর্কতার সাথে ব্যবহার করা উচিত যাতে স্ক্রিপ্টটি পরিষ্কার এবং কার্যকর থাকে।

common.content_added_by

Parameter Passing এবং Return Values

224
224

Batch scripting এ parameter passing এবং return values ব্যবহার করে আপনি ফাংশন বা সাবরুটিনের মধ্যে ডেটা আদান-প্রদান করতে পারেন। এটি স্ক্রিপ্টের মধ্যে পুনঃব্যবহারযোগ্যতা এবং মডুলারিটি আনতে সাহায্য করে, যাতে একটি স্ক্রিপ্টের বিভিন্ন অংশ একে অপরের সাথে যোগাযোগ করতে পারে এবং ফলাফল পেতে পারে।

Parameter Passing:

Batch script এ ফাংশন বা সাবরুটিনের মধ্যে আর্গুমেন্ট (parameters) পাঠানোর জন্য আপনি CALL কমান্ড ব্যবহার করতে পারেন। সাবরুটিন বা ফাংশনের মধ্যে প্যারামিটার পাস করার জন্য, স্ক্রিপ্টের অন্য জায়গা থেকে প্যারামিটার গুলি গ্রহণ করা হয়। এর মাধ্যমে বিভিন্ন কার্যক্রমের জন্য একই ফাংশন বা সাবরুটিন পুনঃব্যবহার করা সম্ভব।

Return Values:

Batch script এ ফাংশন বা সাবরুটিনে return values পেতে হলে, সাধারণত ERRORLEVEL বা কোনো ভেরিয়েবলের মাধ্যমে ফলাফল ফেরত দেওয়া হয়। Batch scripting এ সরাসরি return কীওয়ার্ড নেই, কিন্তু ভেরিয়েবল বা exit code ব্যবহার করে ফলাফল ফেরত দেওয়া যায়।

Parameter Passing উদাহরণ:

ধরা যাক, আপনি একটি ফাংশন তৈরি করতে চান যা দুটি সংখ্যা যোগ করে এবং সেই ফলাফল ফেরত দেয়। এখানে আমরা প্যারামিটার পাস করতে এবং ফলাফল ফিরিয়ে আনতে দেখাবো।

@echo off
setlocal

rem প্রধান স্ক্রিপ্টের মধ্যে দুটি সংখ্যা প্রদান করা
set num1=5
set num2=10

rem ফাংশন কল করা
call :add_numbers %num1% %num2%

rem সাবরুটিনে পাস করা প্যারামিটার গুলি গ্রহণ করা এবং ফলাফল প্রদর্শন করা
echo যোগফল: %result%
pause
exit /b

:add_numbers
rem প্যারামিটার গ্রহণ করা
set /a result=%1 + %2
exit /b

ব্যাখ্যা:

  1. প্রথমে, দুটি সংখ্যা num1 এবং num2 তৈরি করা হয়েছে।
  2. call :add_numbers %num1% %num2% দিয়ে ফাংশনটি কল করা হয়েছে এবং সংখ্যা দুটি প্যারামিটার হিসেবে পাস করা হয়েছে।
  3. ফাংশনটি add_numbers সাবরুটিনে যায়, যেখানে %1 এবং %2 এর মাধ্যমে প্যারামিটার গ্রহণ করা হয়। এখানে %1 হলো প্রথম প্যারামিটার (num1) এবং %2 হলো দ্বিতীয় প্যারামিটার (num2)।
  4. এরপর এই দুটি সংখ্যা যোগ করা হয়েছে এবং ফলাফল result ভেরিয়েবলে সংরক্ষণ করা হয়েছে।
  5. শেষে, result ভেরিয়েবলটি মূল স্ক্রিপ্টে ফিরে আসবে এবং ফলাফল হিসেবে প্রদর্শিত হবে।

Return Values উদাহরণ:

Batch script এ সরাসরি return কোন ফলাফল ফেরত দেওয়ার কোনও সরাসরি উপায় নেই, তবে ERRORLEVEL বা একটি ভেরিয়েবল ব্যবহার করে আপনি return value পেতে পারেন।

@echo off
setlocal

rem ফাংশন কল করা
call :multiply_numbers 4 6
rem ফলাফল প্রিন্ট করা
echo গুণফল: %result%
pause
exit /b

:multiply_numbers
rem প্যারামিটার গ্রহণ করা
set /a result=%1 * %2
exit /b

এখানে multiply_numbers ফাংশনটি দুটি প্যারামিটার (4 এবং 6) গ্রহণ করেছে এবং তাদের গুণফল ফেরত দিয়েছে। আপনি ফলাফলটি result ভেরিয়েবলে দেখাতে পারবেন।

Return Values এবং ERRORLEVEL:

Batch scripting এ, ERRORLEVEL ব্যবহার করে কোন কন্ডিশন বা স্টেটমেন্টের ফলাফল যাচাই করা যেতে পারে। উদাহরণস্বরূপ:

@echo off
setlocal

rem একটি কমান্ড চালানো এবং ERRORLEVEL পরীক্ষা করা
echo Hello, World!
if %ERRORLEVEL% equ 0 (
    echo কমান্ড সফলভাবে চলেছে
) else (
    echo কোনো ত্রুটি ঘটেছে
)
pause
exit /b

এখানে echo কমান্ডের পর ERRORLEVEL চেক করা হয়েছে। ERRORLEVEL 0 হলে, এটি সফলভাবে রান করেছে; যদি না হয়, ত্রুটি ঘটেছে।

Parameter Passing এবং Return Values এর সুবিধা:

  1. Modularity: একাধিক অংশে একই কোড বা ফাংশন ব্যবহার করা যায়, যা স্ক্রিপ্টের পুনঃব্যবহারযোগ্যতা বাড়ায়।
  2. Code Readability: কোডকে ছোট এবং সহজ রাখতে সাহায্য করে, কারণ আপনি পৃথক ফাংশন বা সাবরুটিনে কাজ ভাগ করে নিতে পারেন।
  3. Maintainability: কোডের যে কোনো অংশে পরিবর্তন বা আপডেট করলে অন্য অংশগুলিতে কোনো প্রভাব পড়ে না, ফলে স্ক্রিপ্টের রক্ষণাবেক্ষণ সহজ হয়।
  4. Error Handling: ERRORLEVEL ব্যবহার করে কমান্ডের ফলাফল সঠিকভাবে যাচাই করা যায়, এবং প্রয়োজনে প্রয়োজনীয় পদক্ষেপ নেওয়া যায়।

সতর্কতা:

  • Batch scripting এ parameter passing এবং return values সরল না হলেও, সঠিকভাবে ব্যবহার করলে কোড অনেক বেশি কার্যকরী ও শক্তিশালী হয়।
  • সাবরুটিন এবং ফাংশনগুলোর মধ্যে সঠিক প্যারামিটার পাস এবং ERRORLEVEL সঠিকভাবে পরিচালনা করা গুরুত্বপূর্ণ।

সারাংশ

Batch script এ parameter passing এবং return values ব্যবহারের মাধ্যমে আপনি স্ক্রিপ্টের মধ্যে ডেটা আদান-প্রদান করতে পারেন। এটি কোডের পুনঃব্যবহারযোগ্যতা এবং মডুলারিটি বৃদ্ধি করে এবং আপনাকে স্ক্রিপ্টে আরো জটিল লজিক তৈরি করার সুযোগ দেয়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion